/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vista.personas.pacientes;

import java.util.Iterator;
import javax.swing.event.InternalFrameAdapter;
import modelo.personas.pacientes.GestorParentesco;
import modelo.personas.pacientes.Parentesco;
import vista.administracion.GestorVistaAdministracionPnl;

/**
 *
 * @author Raul
 */
public class GestorVistaParentescosABM extends GestorVistaAdministracionPnl {
    
    private GestorParentesco gestorModelo = new GestorParentesco();

    public GestorParentesco getGestorModelo() {
        return gestorModelo;
    }

    public void setGestorModelo(GestorParentesco gestorModelo) {
        this.gestorModelo = gestorModelo;
    }
    
    @Override
    public void inicializarVista(){
        super.inicializarVista();
        getFormulario().setearTituloPanelTabla("Parentescos");
        getFormulario().agregarFiltrosDeBusqueda(gestorModelo.getFiltros());
        cargarModeloComponente();
    }
    
    @Override
    public void registrarNuevaEntidad() {
        GestorVistaParentescoIntFrm gestorEditor = new GestorVistaParentescoIntFrm();
        gestorEditor.abrirFormulario();
        super.agregarEditor(gestorEditor.getFormulario());
        //detectar cierre del formulario de edicion
        gestorEditor.getFormulario().addInternalFrameListener(new MyAdapter());
    }

    @Override
    public void modificar(Object modelo) {
        //abrir el formulario de edicion
        GestorVistaParentescoIntFrm gestorEditor = new GestorVistaParentescoIntFrm((Parentesco) modelo);
        gestorEditor.abrirFormulario();
        super.agregarEditor(gestorEditor.getFormulario());
        //detectar cierre del formulario de edicion
        gestorEditor.getFormulario().addInternalFrameListener(new MyAdapter());
    }

    @Override
    public void eliminar(Object modelo) {
        gestorModelo.setModelo((Parentesco) modelo);
        gestorModelo.eliminar();
    }
    
    @Override
    public void cargarModeloComponente(){
        Object[] titulos={ "","Parentesco"};
        int [] anchos = {0,20};
        getFormulario().cargarTitulosTabla(titulos, anchos);
    }
    
    @Override
    public void cargarDatos(java.util.Collection datos){
        Iterator i=datos.iterator();
        //agregar las parentescos a la tabla
        while(i.hasNext()){
            Parentesco p = (Parentesco)i.next();
            Object[] fila={p, p.getNombre()};
            getFormulario().agregarFilaTabla(fila);
        }
    }
    
    @Override
    public int mostrarDialogoDeEliminacion(){
        return super.mostrarDialogoDeEliminacion(getFormulario(), "Esta seguro que desea eliminar\n"
                + " el parentesco seleccionado?");
    }
    
    class MyAdapter extends InternalFrameAdapter {
        @Override
        public void internalFrameClosed(javax.swing.event.InternalFrameEvent e){
            getFormulario().actualizarTabla();
        }
    }
    
    @Override
    public void busquedaRapida(String filtro, String valor) {
        cargarModeloComponente();
        cargarDatos(gestorModelo.buscar(filtro, valor));
        getFormulario().getEditorPnl().removeAll();
        getFormulario().getEditorPnl().repaint();
    }
}
